Skip to content

[cfg, megatron, doc] fix: drop unused actor.router_replay in favor of engine config - #7466

Open
YeonwooSung wants to merge 2 commits into
verl-project:mainfrom
YeonwooSung:fix/7463-router-replay-dead-key
Open

[cfg, megatron, doc] fix: drop unused actor.router_replay in favor of engine config#7466
YeonwooSung wants to merge 2 commits into
verl-project:mainfrom
YeonwooSung:fix/7463-router-replay-dead-key

Conversation

@YeonwooSung

@YeonwooSung YeonwooSung commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Fixes #7463.

actor.yaml exposed actor_rollout_ref.actor.router_replay, but Megatron/VeOmni workers only read actor.{megatron,veomni}.router_replay. The documented top-level key was a silent no-op.

Per review, this PR drops the unused top-level key instead of aliasing it:

  • Remove router_replay from actor.yaml and from ActorConfig.
  • Keep the live engine field on actor.megatron.router_replay / actor.veomni.router_replay.
  • Point the Ascend NPU guide and parameter table at those engine keys only.
  • Read the engine copy in experimental/separation when deciding R2 vs R3.

actor_rollout_ref.actor.router_replay.mode=... now fails in Hydra struct mode. The supported override is actor_rollout_ref.actor.megatron.router_replay.mode=R3 (or veomni).

Closed #3762 asked whether routing replay would be supported (it is). This issue is the leftover dead key.

Checklist Before Starting

Test

pytest tests/workers/config/test_actor_router_replay_sync_on_cpu.py -q

Ruff passed on the touched Python files. Please run the CPU test in CI.

API and Usage Example

# Megatron
actor_rollout_ref.actor.megatron.router_replay.mode=R3
actor_rollout_ref.rollout.enable_rollout_routing_replay=True

# VeOmni
actor_rollout_ref.actor.veomni.router_replay.mode=R3

Design & Code Changes

The worker already selected self.config.actor.megatron.router_replay / self.config.actor.veomni.router_replay. Removing the unused actor-level schema avoids a second source of truth.

ref.router_replay in ref.yaml is unchanged; this review only asked to drop the actor-level key.

Checklist Before Submitting

  • Read the Contribute Guide.
  • Apply pre-commit checks: pre-commit install && pre-commit run --all-files --show-diff-on-failure --color=always
  • Add / Update the documentation.
  • Add unit or end-to-end test(s) to the CI workflow to cover all the code. If not feasible, explain why: CPU unit tests assert ActorConfig no longer has a top-level router_replay field and that the engine field still works.
  • Once your PR is ready for CI, send a message in the ci-request channel in the verl Slack workspace.
  • If your PR is related to the recipe submodule, please also update the reference to the submodule commit via git submodule update --remote or cd recipe && git pull origin main.

AI assistance was used to locate the bug and apply the review. A human author should review every changed line.

…agrees with engine

Fixes verl-project#7463

Co-authored-by: Grok <grok@x.ai>
Signed-off-by: YeonwooSung <neos960518@gmail.com>
Comment thread verl/trainer/config/actor/actor.yaml Outdated
Review: keep only actor.{megatron,veomni}.router_replay.

Fixes verl-project#7463

Co-authored-by: Grok <grok@x.ai>
Signed-off-by: YeonwooSung <neos960518@gmail.com>
@YeonwooSung YeonwooSung changed the title [cfg, megatron, doc] fix: honor actor.router_replay or fail if it disagrees with engine [cfg, megatron, doc] fix: drop unused actor.router_replay in favor of engine config Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[config][MoE] actor.router_replay.mode is ignored; official docs point at a no-op key Does verl have plans to support routing replay?

2 participants